8.2

多表关联：将不同的表之间的列进行合并，连接好的表是一张临时表

内连接：inner join

外连接：left join, right join

交叉连接（了解）：cross join

`select 字段 from 表1 t join 表2 s` 

`on t.字段1 = s.字段1`

 `where 条件`

join on的问题：没有限定条件ON，返回的是笛卡尔积

空间大小：M*N



操作变量声明、存储过程、触发器的操作：

变量声明：

1.用户定义的变量（前缀为@）：
您可以访问任何用户定义的变量，而不声明它或初始化它。 如果引用尚未初始化的变量，则它的值为NULL，并且类型为字符串。

2.局部变量（无前缀）：
需要在访问局部变量之前使用DECLARE声明局部变量。它们可以用作存储过程中的局部变量和输入参数：

3.服务器系统变量（以@@为前缀）：
[MySQL](https://www.centos.bz/tag/mysql-2/)服务器维护许多系统变量配置为默认值。 它们可以是GLOBAL，[SESSION](https://www.centos.bz/tag/session/)或BOTH类型。
全局变量影响服务器的整体操作，而会话变量影响其对各个客户端连接的操作。

`创建存储过程：`
`delimiter 新结束符号`

`create procedure 过程名字 ([[in|out|inout]参数名称 参数类型])`

`begin`

​	`过程体`

`end`

`新结束符号`

`delimiter;`



`delimiter $$`

`create procedure proc(in num int)`

`begin`

​	`select id, name, from houlang where id >num`

`end`



`delimiter;`



`create trigger 触发器名字 触发时机 触发事件 on 表 for each now 触发顺序`

`begin`

​	`操作的内容`

`end`

举例用Python实现一个事务应用场景

`start transaction;`

`delete from qianjin where id=20;`

`delete from houlang where name="xiaomin";`

`commit;`



`select  * from houlang;`

`start transaction;`

`delete from houlang;`

`select  * from houlang;`

`rollback;`

`select  * from houlang;`

